$(function() {
	var Role = {
		initRoleGrid : function() {
			function beforeSelectRow() {
				$("#grid_area").jqGrid('resetSelection');
				return true;
			}
			var roleGrid = $("#grid_area").jqGrid({
				url : ctxPath + "/role/getPageInfo.do",// 查询列表接口
				multiselect : true,
				multiboxonly : true,
				beforeSelectRow : beforeSelectRow,// js方法
				colNames : [ 'id', '角色编号', '角色名称', '描述','操作日期'],
				colModel : [{name : 'id',index : 'id',hidden :true	},
				            {name : 'code',	index : 'code',	width : '20',hidden : true},
				            {name : 'name',	index : 'name',	width : '30',sortable : false,
				            	formatter : function(cellvalue,	options, rowObject) {
				            		var urlRoleUpdate = ctxPath	+ "/role/saveOrUpdate.do"+ "?&id="+ rowObject.id;
				            		return "<a href='"+ urlRoleUpdate+ "'  style='text-decoration:underline;color:blue'>"+ cellvalue + "</a>";
				            	}
				            },
				            {name : 'role_desc',index : 'role_desc',width : '30'},
				            {name : 'org_date',index : 'org_date',width : '30',
				            	formatter:function(cellvalue, options, rowObject){
						 			return new Date(cellvalue).format("yyyy-MM-dd HH:mm:ss");
						 		}
						 	}],
				shrinkToFit:true,  //true 按比例初始化列宽   false 使用指定的固定列宽
				pager : '#page_area'
			});
			$('#cb_grid_area').hide();
			return roleGrid;
		}
	};
	
	//表头居中
	$(".ui-jqgrid-sortable").css("text-align","center");

	Role.roleGrid = Role.initRoleGrid();// 初始化角色列表
	
	$("#role_select_status").select2({
		data : fms.constants.SELECT.ZT,//调用公共组件来初始化下拉列表
		minimumResultsForSearch : -1
	});
	
	/**
	 * 执行查询
	 */
	$("#gotoSearch").on("click", function() { 
		var status =$('#role_select_status').val();
		Role.roleGrid.setGridParam({
			postData :{"name" : $('#name').val(),				
				"code" : $('#code').val()},
			page : 1
		});
		Role.roleGrid.trigger("reloadGrid");
	});

	/**
	 * 重置查询条件
	 */
	$("#gotoResetSearch").on("click", function() { 
		$("#search_form").resetForm();
		$("#role_select_status option:first").prop("selected", 'selected');
	});

	/**
	 * 跳转到添加页面
	 */
	$("#role_add").on("click", function() {
		window.location.href = ctxPath + "/role/saveOrUpdate.do";
	});
	
	/**
	 * 跳转到修改页面
	 */
	$("#role_edit").on("click",	function() {
		var id = Role.roleGrid.getGridParam('selrow');// 获取选中修改项
		if (!id) {// 没有选中修改项
			fms.ShowMsg({msg:"请在列表中选择一个修改项!",icon:0})
			return;
		}
		window.location.href = ctxPath + "/role/saveOrUpdate.do" +"?&id="+id;
	});
	
	/**
	 * 删除当前选中的角色
	 */
	$("#role_delete").on("click", function() {
		var id = Role.roleGrid.getGridParam('selrow');// 获取选中项id
		if (!id) {// 没有选中修改项
			fms.ShowMsg({msg:"请在列表中选择一个删除项!",icon:0})
			return;
		}	
		layer.confirm('是否删除该角色信息？', {// 确认提示框
			btn : [ '删除', '取消' ]
		}, function() {
			$.ajax({
				type : "post",
				dataType : "json",
				data : {'id' : id		
				},
				async : false,// 同步
				url : ctxPath + "/role/delete.do",
				success : function(data) {
					if (data && data.status == "SUCCESS") {// 删除成功
						fms.ShowMsg({msg:"删除角色信息成功",icon:1});
						Role.roleGrid.trigger("reloadGrid");//重新刷新列表
					} else {// 删除失败
						fms.ShowMsg({msg:"删除角色信息失败，请稍后再试。",icon:2,data:data});
					}
				},
				error : function(data) {
					fms.ShowMsg({msg:"删除角色信息失败，请稍后再试。",icon:2,data:data});
				}
			});
		}, function() {
		});
	});
	
	/**
	 * 授权用户
	 */
    $("#user_select").userselector({
		 callback:function(result)
		 {
		 	 var roleId = Role.roleGrid.getGridParam('selrow');// 获取选中项id
			 var userAndRoleList = [];
			 var role;
			  $.each(result,function(i,n){
			  		userAndRoleList.push({id:window.fms.guid(),roleId:roleId,userId:n});
			  });
			 role={id:roleId,"userAndRoleList":userAndRoleList};
			 //loading层
     		 var mark = layer.load(1, {
        		shade: [0.4,'#ffe'], //0.1透明度的白色背景
        		success:function(){
        			$.ajax({
        				type : "POST",
		        		dataType:"json",      
		                contentType:"application/json",   
		        		traditional:true,
        				data : JSON.stringify(role),
        	  			url : ctxPath + "/role/saveRoleAndUser.do",
        	  			success : function(data) {
        	  				layer.msg("授权用户成功！", {
        						icon : 1,
        						time : 2000
        					});
        	  				layer.close(mark);
        	  				Role.roleGrid.trigger("reloadGrid");
//        	  				var postData = User.userGrid.getGridParam("postData");
//        				    $.each(postData, function (k, v) { delete postData[k]; });
//        				    getUserByOrgId(postData, orgId);
        	  			},
        	  			error : function(data){
        					layer.msg("授权用户异常！", {
        						icon : 1,
        						time : 2000
        					});
        					layer.close(mark);
        					Role.roleGrid.trigger("reloadGrid");
        				}
        	  		});
        		}
     		 });
		 },
		 validateGrid:Role.roleGrid,
		 data:"?noRoleUser=noRoleUser"
	 });
	 
	 /**
	  * 查看授权用户
	  */
	 $('#look_user_select').on("click",function(){
	 	var id = Role.roleGrid.getGridParam('selrow');// 获取选中项id
//	 	var rowData = $("#grid_area").jqGrid('getRowData',id);
		if (!id) {// 没有选中修改项
			fms.ShowMsg({msg:"请在列表中选择一项查看!",icon:0})
			return;
		}	
	 	window.location.href = ctxPath + "/role/roleGrantUser.do"+"?roleId="+id;
	 })
});
